Excel VBA Parts Collection | Home | Excel Reference Manual | DownLoad | My Profile | |
Menu | Next | Links | Excel Function Manual | Myself | BBS |
用 語 | 意 味 |
---|---|
オブジェクト![]() |
オブジェクト(Object)とは、「VBAの操作の対象となるもの」の総称をいいます。 Excelを構成する要素には、まず、「Excel」というアプリケーションが頂点にあり、データの記録媒体としてワークブック(WorkBook)が用意されています。 さらに、ブックは複数のワークシート(Worksheet)から構成されており、それぞれのシートは複数のセル(Cell・・・Cellの一定範囲をレンジ(Range)といいます。)によって区切られています。 また、Excelはグラフや図形(Chart)も作成することができ、これらの構造もブックと同じように階層的になっています。このように、Excelは階層構造で成り立っており、それぞれの階層がVBAの操作対象となるので、VBAではこれらをすべて「オブジェクト」として取り扱います。 下図は、Excelというアプリケーションに関連するオブジェクトの中からセルに関係するオブジェクトだけの階層構造を示したものです。 ![]() |
コレクション | コレクション(Collection)とは、同じ種類のオブジェクトの集合体をいいます。 Excelのフォルダには複数のブックが保存されていたり(ブックのコレクション)、ブックは何枚かのワークシートによって構成されている(ワークシートのコレクション)のが一般的です。 したがって、コレクション形態になっているオブジェクトは、オブジェクト名が複数形となっています。なお、セルは複数ありますが、セルのコレクションはRangeというオブジェクト名で表します。 また、コレクションを構成する個々のオブジェクトのことをメンバーといい、メンバーにはそれぞれ固有の名前が付けられてます。 VBAでコレクションの中から1つのオブジェクトを示す場合は、まずコレクションでオブジェクトの種類を指定し、続いてその中から操作対象の名前を明記して特定の1つのオブジェクトを示すという手順をとります。 以上のことをワークシートで説明します。 ![]() |
プロジェクト | プロジェクト(Project)とは、モジュール(Module・・・次項参照)の集まりのことをいいます。 具体的には、Excelのワークブック(Workbook)単位を1つのプロジェクトといい、プロジェクト名はブック名(Book)を示します。 プロジェクト、モジュール、プロシージャの関係を図示します。 ![]() |
モジュール | モジュール(Module)とは、複数のプロシージャ(Procedure・・・次項参照)の集合体をいいます。また、モジュールシートはプロシージャを記録するためのシートをいいます。 前述したマクロの自動記録機能を利用してマクロを作成すると、その結果は「標準モジュール」に記録されます。つまり、モジュールとは、VBAのコードを記録する場所(シート)ということができます。 標準モジュールを新規に表示するには、VBE画面のメニューで「挿入」「標準モジュール」を選択すると、コードウインドウに表示されます。また、モジュールが挿入されると、モジュールフォルダも同時にプロジェクトウインドウに表示されます。 モジュールには、標準モジュールのほかに、後述するユーザーフォームやワークシートと一体となったモジュール、「ThisWorkbook」のように特別の機能をもったモジュールもあります。 |
プロシージャ | プロシージャ(Procedure)とは、実行時に 1 つの単位として処理されるコードの集まりをいい、名前を付けてモジュールに記録します。 通常作成するプロシージャには、Sub プロシージャと Function プロシージャの 2 種類があります。 (1) 通常の Sub プロシージャ Sub プロシージャは、一般的に使用されるプロシージャで、Sub で始まり、 End Sub で終わる一連のコードです。 Sub プロシージャは次のような形式で作成されます。 Sub <マクロ名> () なんらかのマクロ処理 End Sub (2) Function プロシージャ Function プロシージャは、呼び出したプロシージャに値や文字列を返す必要がある場合に作成されるものです。 例えば、消費税などは「金額×税率」として計算されますが、これをプログラム中の必要箇所ごとに記述した場合には、税率が変更されたときに訂正漏れが生ずる恐れがあります。このようなときには、消費税計算だけのプログラムを作成しておいて、これを呼び出して結果の値をプロシージャに返すようにしておくと、消費税計算の 1 箇所の税率変更だけで済みますので非常に効率的です。 また、Function プロシージャは、「ユーザー定義関数」として登録しておくと、Excelでも利用できますので汎用性があります。Function プロシージャは次のような形式で作成されます。 Function マクロ名(引数1 As データ型,引数2 As データ型) As データ型 マクロ名 = 処理内容(計算式) End Function Function プロシージャを利用したプロシージャの作成方法を消費税計算の例で見てみましょう。(下記を標準モジュールにコピーして、実行してみてください。) '[ 呼び出し元 Sub プロシージャ ] Sub Kingaku As Long ,Zeigaku As Long Kingaku = InputBox("金額を入力してください。") Zeigaku = Zeikinkeisan(Kingaku) 'Function プロシージャのマクロ名 MsgBox "消費税は " & Zeigaku & " 円です。" End sub '[ Function プロシージャ ] Function Zeikinkeisan(Kingaku As Long) As Long Zeiritsu = 0.05 Zeikinkeisan = Int(Kingaku * Zeiritsu) End Function 上記のプログラムでは、まず、呼び出し元 Sub プロシージャの InputBox で入力した値をKingaku という変数に格納した上で、その値を Function プロシージャに引き渡します。 Function プロシージャでは、Kingaku に Zeiritsu を乗じて得た結果を切り捨て値を Zeikinkeisan という変数に格納して、 呼び出し元 Sub プロシージャに返します。 次に、呼び出し元 Sub プロシージャでは、戻り値を Zeigaku という変数に格納して、その内容を MsgBox に表示します。 |
コード | コード(Code)とは、コードウインドウに表示されるモジュールシートに入力した命令(プログラム)の総称をいいます。 |
プロパティ | プロパティ(Property)とは、特定のオブジェクトの属性を表す名前をいいます。 プロパティの値によって、オブジェクトの動作や外観 (サイズ、色、画面上の位置、選択可能かどうかなど) が決まります。 例えば、1つの箱(オブジェクト)があったとします。箱には大きさ(幅・奥行き・高さ)、材質、色などの様々な要素があります。こうした箱(オブジェクト)の持っている属性のことを「プロパティ」といいます。 プロパティには要素を決める「値」が必要です。例えば、箱の大きさは、幅 = 15cm , 奥行き = 10cm , 高さ = 5cm)などと表します。 プロパティに値を設定するには、対象となるオブジェクトの後ろに、ピリオド、プロパティ名、等号 (=)、プロパティ値の順で記述します。 [ セルに関するプロパティの設定例 ] Range("A1").Value = 10 'セルA1の値 = 10 Range("A1").Interiir.Color = RGB(255,0,0) 'セルA1の背景色 = 赤 上記の例では、「Value」「Color」がプロパティ名、「10」「赤」が値となります。 |
メソッド | メソッド(Method)とは、オブジェクトに対して行う様々な操作(動作命令)をいいます。 例えば、セル範囲のコピー、セルの削除、シートの印刷をするときはメソッドによって行います。前述したプロパティが静的な性質を有するのに対して、メソッドは動的な性質を有すると言えます。 メソッドを実行するには、対象となるオブジェクトの後ろに、ピリオド、メソッドの順で記述します。 メソッドには「引数」があるものとないものがありますが、その詳細については別に述べます。 [ セルに関するプメソッドの実行例 ] Range("A1").Copy 'セルA1をコピーする Range("A1").Delete 'セルA1を削除する Activesheet.PrintOut '現在アクティブなシートを印刷する |
関数 | 関数とは、データを与えてその結果を得ることができる命令をいいます。 関数には予め特定の機能が与えられています。また、関数にはVBA自体の関数とExcelのワークシートで使用するワークシート関数があります。 |
ステートメント | ステートメント(Statemente)とは、値を返さない命令のことをいいます。 例えば、「If」や「For」などの命令は値を返さないので、これらはステートメントということになります。これに対して、値を返す命令のことを「関数」と呼んでいます。データ入力用のウインドウを表示する「InputBox」命令では、ユーザーから入力された結果が返されますので「InputBox」は関数ということになります。 ステートメントには、キーワード、演算子、変数、定数、および式を指定できます。各ステートメントは、次のいずれかに分類されます。 (1) 宣言ステートメント 変数、定数、またはプロシージャに名前を付け、データ型も指定できます。 (2) 代入ステートメント 変数または定数に値や式を代入します。 (3) 実行可能なステートメント このステートメントは、メソッドまたは関数を実行し、コードのブロック間をループしたり分岐したりすることができます。実行可能なステートメントには、通常、算術演算子や条件演算子が含まれます。 ステートメントは、通常、1行に記述できますが、長くなるときは行継続文字「_ (アンダースコアー)」を使用してステートメントを次の行に続けることができます。 |
変数と定数 | プログラムの中では様々な情報を扱いますが、その情報はメモリ領域のどこかに保管しておかなければなりません。変数とは、情報を保管しておくために用意された箱(メモリ領域)のことをいいます。 用意した箱には大きく分けて2つの種類があります。その一つはプログラム実行中に処理の流れに応じて随時内容を変更できるデータを収める箱であり、箱の大きさはプログラムの作成者が自由に設定できます。 もう一つは、予めデータの内容を決めておき、プログラムの実行中は内容が変わることなく利用できる箱です。 前者のように、プログラムの実行過程に応じて内容が変えられるデータを「変数」といい、後者のようにプログラム実行中も内容が変わらない(変える必要がない)データを「定数」といいます。 変数や定数にデータの内容が想像しやすい名前を付けたものを「変数名」「定数名」と呼んでいます。 |
イベントマクロ | イベントマクロ(Event Macro)とは、特定の操作を行ったときに自動的に実行されるマクロをいいます。 Excelを手作業で操作している場合に「シートをアクティブにする」「ファイルのデータを変更する」「マウスで処理範囲を選択する」などの処理を行うと、操作の内容によりExcelの画面の状態が変化します。これはメニューやツールバーのボタンがクリックされたり、マウスの操作によってExcelが自動的にそれを感知して、決められた処理を行っているからです。 ここで、「アクティブにする」「変更する」などはイベントと呼ばれ、それぞれ Active イベント、Change イベントといいます。つまり、Excel(メニューやワークシート)に対して操作を行うと何らかのイベント(処理を実行するきっかけ)が発生していることになります。 このように、イベントマクロは、ユーザーが特定の操作を行ったときにExcelがそれを感知して自動的に実行されるマクロのこといいます。 また、イベントマクロは手作業でExcelを操作している場合だけでなく、VBAによって書かれたマクロによっても自動的に発生させることができます。 イベントマクロを記述するモジュールの種類には、ThisWorkbook のモジュールシート(ブックが開かれたときに実行するマクロ)、ワークシートと一体になっているモジュール、ユーザーフォーム(ユーザーフォームに貼り付けられたコントロールを含む)と一体となっているフォームモジュールなどがあります。 それぞれのモジュールシートは、プロジェクトエクスプローラのウインドウで該当のオブジェクトをダブルクリックすると表示されます。 |
ダイアログボックス | Windows
では、ファイルをオープンしたり、ソフトを終了したり、印刷の指定(ページ設定)を行ったりするときなどに、箱型をしたウインドウが表示され、その中の項目を選択したり、データの入力を行うと目的の処理を実行することができます。このウインドウのことをダイアログボックス(Dialogbox)といい、ソフトとオペレーターとの仲介役を果たすオブジェクトです。 下図は、「並べかえ」のダイアログボックス ![]() |
ユーザーフォーム | ユーザーフォーム(UserForm)とは、ユーザーが自由に作成できるウインドウやダイアログボックスの総称です。 前項で説明した、「ファイルを開く」「ソフトを終了する」などのダイアログボックスは、Windows(Excel)によって予め用意されているダイアログボックスですが、ユーザーフォームはユーザー自身のオリジナルダイアログボックスを作成するための専用ツールです。 ただし、ユーザーフォームそれ自体は何の機能もありませんので、次項で説明する「コントロール」を貼り付けて目的に合った機能を持たせる必要があります。(下図はユーザーフォーム) ![]() |
コントロール |
コントロール(Control)とは、ユーザーフォームに貼り付ける様々な機能を持った部品のことをいいます。主なコントロールの機能は下図のとおりです。![]() |